{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Machine Learning for Design"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Notebook for Session02: Supervised Learning - Estimating Boston house pricing using Linear Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "We want to solve a *regression* problem (we want to approximate a real function)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Import the Boston House Pricing Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(506, 13)\n",
      "['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO'\n",
      " 'B' 'LSTAT' 'MEDV']\n",
      "50.0 5.0 22.5328063241\n",
      "Boston House Prices dataset\n",
      "\n",
      "Notes\n",
      "------\n",
      "Data Set Characteristics:  \n",
      "\n",
      "    :Number of Instances: 506 \n",
      "\n",
      "    :Number of Attributes: 13 numeric/categorical predictive\n",
      "    \n",
      "    :Median Value (attribute 14) is usually the target\n",
      "\n",
      "    :Attribute Information (in order):\n",
      "        - CRIM     per capita crime rate by town\n",
      "        - ZN       proportion of residential land zoned for lots over 25,000 sq.ft.\n",
      "        - INDUS    proportion of non-retail business acres per town\n",
      "        - CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n",
      "        - NOX      nitric oxides concentration (parts per 10 million)\n",
      "        - RM       average number of rooms per dwelling\n",
      "        - AGE      proportion of owner-occupied units built prior to 1940\n",
      "        - DIS      weighted distances to five Boston employment centres\n",
      "        - RAD      index of accessibility to radial highways\n",
      "        - TAX      full-value property-tax rate per $10,000\n",
      "        - PTRATIO  pupil-teacher ratio by town\n",
      "        - B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n",
      "        - LSTAT    % lower status of the population\n",
      "        - MEDV     Median value of owner-occupied homes in $1000's\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "\n",
      "    :Creator: Harrison, D. and Rubinfeld, D.L.\n",
      "\n",
      "This is a copy of UCI ML housing dataset.\n",
      "http://archive.ics.uci.edu/ml/datasets/Housing\n",
      "\n",
      "\n",
      "This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n",
      "\n",
      "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n",
      "prices and the demand for clean air', J. Environ. Economics & Management,\n",
      "vol.5, 81-102, 1978.   Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n",
      "...', Wiley, 1980.   N.B. Various transformations are used in the table on\n",
      "pages 244-261 of the latter.\n",
      "\n",
      "The Boston house-price data has been used in many machine learning papers that address regression\n",
      "problems.   \n",
      "     \n",
      "**References**\n",
      "\n",
      "   - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n",
      "   - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n",
      "   - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import load_boston\n",
    "boston = load_boston()\n",
    "print boston.data.shape\n",
    "print boston.feature_names\n",
    "print np.max(boston.target), np.min(boston.target), np.mean(boston.target)\n",
    "print boston.DESCR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[  6.32000000e-03   1.80000000e+01   2.31000000e+00   0.00000000e+00\n",
      "   5.38000000e-01   6.57500000e+00   6.52000000e+01   4.09000000e+00\n",
      "   1.00000000e+00   2.96000000e+02   1.53000000e+01   3.96900000e+02\n",
      "   4.98000000e+00]\n",
      "711.0 0.0 70.0724468258\n"
     ]
    }
   ],
   "source": [
    "print boston.data[0]\n",
    "print np.max(boston.data), np.min(boston.data), np.mean(boston.data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Separate train and test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from sklearn.cross_validation import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.25, random_state=33)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Find the most important features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(False, 'CRIM'), (False, 'ZN'), (True, 'INDUS'), (False, 'CHAS'), (False, 'NOX'), (True, 'RM'), (False, 'AGE'), (False, 'DIS'), (False, 'RAD'), (True, 'TAX'), (True, 'PTRATIO'), (False, 'B'), (True, 'LSTAT')]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3e95cd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.feature_selection import *\n",
    "fs=SelectKBest(score_func=f_regression,k=5)\n",
    "X_new=fs.fit_transform(X_train,y_train)\n",
    "print zip(fs.get_support(),boston.feature_names)\n",
    "\n",
    "x_min, x_max = X_new[:,0].min() - .5, X_new[:, 0].max() + .5\n",
    "y_min, y_max = y_train.min() - .5, y_train.max() + .5\n",
    "#fig=plt.figure()\n",
    "#fig.subplots_adjust(left=0, right=1, bottom=0, top=1, hspace=0.05, wspace=0.05)\n",
    "\n",
    "# Two subplots, unpack the axes array immediately\n",
    "fig, axes = plt.subplots(1,5)\n",
    "fig.set_size_inches(12,12)\n",
    "\n",
    "for i in range(5):\n",
    "    axes[i].set_aspect('equal')\n",
    "    axes[i].set_title('Feature ' + str(i))\n",
    "    axes[i].set_xlabel('Feature')\n",
    "    axes[i].set_ylabel('Median house value')\n",
    "    axes[i].set_xlim(x_min, x_max)\n",
    "    axes[i].set_ylim(y_min, y_max)\n",
    "    sca(axes[i])\n",
    "    plt.scatter(X_new[:,i],y_train)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Normalize data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10.2028980046 -4.66702040845 2.40553579807e-15 2.91774920367 -1.93147098641 -1.16236542525e-15\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "scalerX = StandardScaler().fit(X_train)\n",
    "scalery = StandardScaler().fit(y_train)\n",
    "\n",
    "X_train = scalerX.transform(X_train)\n",
    "y_train = scalery.transform(y_train)\n",
    "X_test = scalerX.transform(X_test)\n",
    "y_test = scalery.transform(y_test)\n",
    "\n",
    "print np.max(X_train), np.min(X_train), np.mean(X_train), np.max(y_train), np.min(y_train), np.mean(y_train)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Start with a lineal model, SGDRegressor, that tries to find the hyperplane that minimizes a certain loss function (typically, the sum of squared distances from each instance to the hyperplane). It uses Stochastic Gradient Descent to find the minimum. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from sklearn.cross_validation import *\n",
    "def train_and_evaluate(clf, X_train, y_train):\n",
    "    \n",
    "    clf.fit(X_train, y_train)\n",
    "    \n",
    "    print \"Coefficient of determination on training set:\",clf.score(X_train, y_train)\n",
    "    \n",
    "    # create a k-fold croos validation iterator of k=5 folds\n",
    "    cv = KFold(X_train.shape[0], 5, shuffle=True, random_state=33)\n",
    "    scores = cross_val_score(clf, X_train, y_train, cv=cv)\n",
    "    print \"Average coefficient of determination using 5-fold crossvalidation:\",np.mean(scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.743303511411\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.707860049111\n",
      "[-0.07641527  0.06963738 -0.05935062  0.10878438 -0.06356188  0.37260998\n",
      " -0.02912886 -0.20180631  0.08463607 -0.05534634 -0.19521922  0.0653966\n",
      " -0.36990842]\n"
     ]
    }
   ],
   "source": [
    "from sklearn import linear_model\n",
    "clf_sgd = linear_model.SGDRegressor(loss='squared_loss', penalty=None,  random_state=42)\n",
    "train_and_evaluate(clf_sgd,X_train,y_train)\n",
    "print clf_sgd.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.743300618503\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.707861811562\n"
     ]
    }
   ],
   "source": [
    "clf_sgd1 = linear_model.SGDRegressor(loss='squared_loss', penalty='l2',  random_state=42)\n",
    "train_and_evaluate(clf_sgd1,X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.743264854792\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.707816829362\n"
     ]
    }
   ],
   "source": [
    "clf_sgd2 = linear_model.SGDRegressor(loss='squared_loss', penalty='l1',  random_state=42)\n",
    "train_and_evaluate(clf_sgd2,X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.743270230372\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.707823590553\n"
     ]
    }
   ],
   "source": [
    "clf_sgd3 = linear_model.SGDRegressor(loss='squared_loss', penalty='elasticnet',  random_state=42)\n",
    "train_and_evaluate(clf_sgd3,X_train,y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Ridge regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.754904554125\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.714014174328\n"
     ]
    }
   ],
   "source": [
    "clf_ridge = linear_model.Ridge()\n",
    "train_and_evaluate(clf_ridge,X_train,y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "SVR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.71886923342\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.707838419194\n"
     ]
    }
   ],
   "source": [
    "from sklearn import svm\n",
    "clf_svr= svm.SVR(kernel='linear')\n",
    "train_and_evaluate(clf_svr,X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.904109273301\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.779288545488\n"
     ]
    }
   ],
   "source": [
    "clf_svr_poly= svm.SVR(kernel='poly')\n",
    "train_and_evaluate(clf_svr_poly,X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.900132065979\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.833648350263\n"
     ]
    }
   ],
   "source": [
    "clf_svr_rbf= svm.SVR(kernel='rbf')\n",
    "train_and_evaluate(clf_svr_rbf,X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 0.715338649791\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.609837490871\n"
     ]
    }
   ],
   "source": [
    "clf_svr_poly2= svm.SVR(kernel='poly',degree=2)\n",
    "train_and_evaluate(clf_svr_poly2,X_train,y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Finally, let's try again Random Forests, in their Extra Trees, and Regression version"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination on training set: 1.0\n",
      "Average coefficient of determination using 5-fold crossvalidation: 0.862555301679\n"
     ]
    }
   ],
   "source": [
    "from sklearn import ensemble\n",
    "clf_et=ensemble.ExtraTreesRegressor(n_estimators=10,random_state=42)\n",
    "train_and_evaluate(clf_et,X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[['0.000207777732008' 'AGE']\n",
      " ['0.00214323299982' 'B']\n",
      " ['0.00308186606315' 'CHAS']\n",
      " ['0.00371760520544' 'CRIM']\n",
      " ['0.0051586111847' 'DIS']\n",
      " ['0.00666141762563' 'INDUS']\n",
      " ['0.0104442902284' 'LSTAT']\n",
      " ['0.0209040207497' 'NOX']\n",
      " ['0.0231915230579' 'PTRATIO']\n",
      " ['0.0829019637061' 'RAD']\n",
      " ['0.138417193015' 'RM']\n",
      " ['0.188401968087' 'TAX']\n",
      " ['0.514768530345' 'ZN']]\n"
     ]
    }
   ],
   "source": [
    "print sort(zip(clf_et.feature_importances_,boston.feature_names),axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Finally, evaluate our classifiers on the testing set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Coefficient of determination:0.791 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "def measure_performance(X,y,clf, show_accuracy=True, show_classification_report=True, show_confusion_matrix=True, show_r2_score=False):\n",
    "    y_pred=clf.predict(X)   \n",
    "    if show_accuracy:\n",
    "        print \"Accuracy:{0:.3f}\".format(metrics.accuracy_score(y,y_pred)),\"\\n\"\n",
    "\n",
    "    if show_classification_report:\n",
    "        print \"Classification report\"\n",
    "        print metrics.classification_report(y,y_pred),\"\\n\"\n",
    "        \n",
    "    if show_confusion_matrix:\n",
    "        print \"Confusion matrix\"\n",
    "        print metrics.confusion_matrix(y,y_pred),\"\\n\"\n",
    "        \n",
    "    if show_r2_score:\n",
    "        print \"Coefficient of determination:{0:.3f}\".format(metrics.r2_score(y,y_pred)),\"\\n\"\n",
    "\n",
    "        \n",
    "measure_performance(X_test,y_test,clf_et, show_accuracy=False, show_classification_report=False,show_confusion_matrix=False, show_r2_score=True)\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
